package services;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

import javax.annotation.PostConstruct;
import javax.faces.bean.ApplicationScoped;
import javax.faces.bean.ManagedBean;

import modelo.Caracteristicaxsalon;
import modelo.Estadoinvitado;
import modelo.Invitado;
import modelo.Propietario;
import modelo.Tiposuscripcion;
import dao.CaracteristicaxSalonDao;
import dao.InvitadosDao;

@ManagedBean(name = "invitadosService", eager = true)
@ApplicationScoped
public class InvitadosService implements Serializable {

	private static final long serialVersionUID = 6449851480283342953L;

	private Invitado invitado;
	private List<Invitado> listaInvitados;
	private InvitadosDao invitadosDao;
	
	@PostConstruct
    public void init() {
    	listaInvitados=invitadosDao.obtenerInvitado();
    }
	
	public InvitadosService() {
		super();
		this.invitado = new Invitado();
		this.listaInvitados = new ArrayList<Invitado>();
		this.invitadosDao = new InvitadosDao();
		
		setListaInvitados(invitadosDao.obtenerInvitado());
		
	}

	public Invitado getInvitado() {
		return invitado;
	}

	public void setInvitado(Invitado invitado) {
		this.invitado = invitado;
	}

	public List<Invitado> getListaInvitados() {
		return listaInvitados;
	}

	public void setListaInvitados(List<Invitado> listaInvitados) {
		this.listaInvitados = listaInvitados;
	}

	public InvitadosDao getInvitadosDao() {
		return invitadosDao;
	}

	public void setInvitadosDao(InvitadosDao invitadosDao) {
		this.invitadosDao = invitadosDao;
	}
	
	 public void guardarInvitado(Invitado i){
	    	invitadosDao.guardarInvitado(i);
	    	init();
	    }
	    public void eliminarInvitado(Invitado i){
	    	invitadosDao.eliminarInvitado(i);
	    	init();
	    }
	    public Invitado obtenerInvitadoById(int id){
	    	return invitadosDao.obtenerInvitadoById(id);
	    }
	
	    public void modificarInvitado(Invitado i,Estadoinvitado e) throws Exception
		{
			invitadosDao.modificarInvitado(i, e);	
		}
	    
//	public void guardarSalon(Salon s, Domicilio d, List<TipoEvento> e, List<Caracteristicaxsalon> c, List<TelefonoSalon> t){
//		salonDao.guardarSalon(s,d,e,c,t);
//	}

	
	
	
}
